#pragma once

#include <GL/glew.h>
#include <memory>
#include <string>

namespace teflon
{
    class Texture2D
    {
    private:
        GLuint texture_id;
    public:
        static std::shared_ptr<Texture2D> fromImageFile(const std::string& filepath);

        Texture2D();
        ~Texture2D();

        GLuint GetId() const { return texture_id; }

    private:
        bool load_image_file(const std::string& filepath);
    };
}
